<?php  
class GoodstypeModel extends Model{
	public $table='goods_type';
	//自动验证
	public $validate=array(
		array('cat_name','nonull','名称不能为空',2,3),
		array('cat_name','IsHasCatName','名称已存在',2,3)
	);
	/**
	 * 自动验证名称是否已经存在
	 */
	public function IsHasCatName($name,$value,$msg,$arg){
		if ($id=Q('get.cat_id'))$map['cat_id']=array('NEQ',$cat_id);
		$map[$name]=array('EQ',$value);
		// p($map);exit;
		return M('goods_type')->where($map)->find()?$msg:true;
	}
	/**
	 * 添加商品类型
	 */
	public function addGoodsType(){
		if ($this->create()) {
			if ($this->add()) {
				$this->updateCache();//添加成功后更新模型缓存
				return true;
			}else{
				$this->error="添加失败";
			}
		}
	}
	//更新缓存
	public function updateCache(){
		$data=$this->all();//查询所有数据
		foreach ($data as $d) {
			$cache[$d['cat_id']]=$d;//将数组键名改为id值
		}	
		return S('goods_type',$cache);//缓存数据
	}
	public function editGoodsType(){
		if ($this->create()) {
			if ($this->save()) {//有主键传过来时，自动使用主键作为条件来更新
				$this->updateCache();
				return true;
			}else{
			 	$this->error="编辑失败";
			}
		}
	}
	public function delGoodsType(){
		$cat_id=Q('get.cat_id',0,'intval');
		if ($this->del($cat_id)) {
			$this->updateCache();//更新缓存
			return true;
		}else{
			$this->error="删除失败";
		}
	}
}
?>